Conventionally, cloud computing platforms host software applications in an Internet-accessible virtual environment. The cloud computing platform allows an organization to use datacenters designed and maintained by third parties. The conventional virtual environment supplies small or large organizations with requested hardware resources, software application resources, network resources, and storage resources. The virtual environment also provides application security, application reliability, application scalability, and application availability.
The conventional datacenters provide the physical computing resources, physical storage resources, and physical network resources. The physical resources in the data center are virtualized and exposed to the organizations as a set of application programming interfaces. The organizations do not need to maintain their own hardware resources or software resources, or maintain datacenters that are reliable and scalable.
The organizations may access these physical resources efficiently through the virtual environment without knowing the details of the software or the underlying physical hardware. In a conventional cloud computing platform, the hardware resources and software resources may be shared by organizations who do not trust each other. To prevent denial of service to any one organization, the conventional cloud platforms provide procedures that maintain equitable access to the shared resources. Most of the procedures require a significant amount of state information which increases computational and cost overhead in the cloud computing platform.
For instance, the sharing procedures may include leaky bucket, token bucket, and fair queuing. The leaky bucket procedure stores communication messages in a queue and transmits the communication messages at a constant rate. When the queue is full, communication messages are discarded. The token bucket procedure stores communication message in a queue and transmits the communication at a rate that is based on the number of tokens associated with the queue. Communication message may be discarded if the communication messages wait in the bucket for a predetermined time. The fair queuing procedure stores communication message in a queue and transmits the communication messages at a rate the is equal or proportional to the rate of experienced by other queues for other communication sessions. These procedures provide a mechanism to share resources in the cloud but have high CPU overhead because of the need to maintaining queues and associated state for the queues.